package name.huliqing.qfaces.temp;
///*
// * To change this template, choose Tools | Templates
// * and open the template in the editor.
// */
//
//package name.huliqing.qfaces.component;
// 
//import java.io.IOException;
//import java.util.logging.Logger;
//import javax.faces.component.UIComponentBase;
//import javax.faces.context.FacesContext;
//import javax.faces.context.ResponseWriter;
//import name.huliqing.qfaces.Constant;
//import name.huliqing.qfaces.QFaces;
//
///**
// * @deprecated
// * @author huliqing
// */
//public abstract class Base extends UIComponentBase{
//	private final static Logger logger = Logger.getLogger(Base.class.getName());
//
//    @Override
//    public String getFamily() {
//        return "name.huliqing.qfaces";
//    }
//    
//    /**
//     * @deprecated
//     * @param val
//     * @return
//     */
//	protected Long convertToLong(Object val) {
//		if (val == null || val.equals("")) return null;
//		try {
//			return Long.parseLong(val.toString());
//		} catch (NumberFormatException nfe) {
//			logger.severe("NumberFormatException:" + val);
//		}
//		return null;
//	}
//	
//	/**
//	 * @deprecated
//	 * @param val
//	 * @return
//	 */
//	protected Boolean convertToBoolean(Object val) {
//		if (val == null || val.equals("")) return null;
//		if (val instanceof java.lang.Boolean) {
//			return (Boolean) val;
//		} else if (val instanceof java.lang.String) {
//			return Boolean.valueOf((String) val);
//		} else {
//			return Boolean.valueOf(val.toString());
//		}
//	}
//	
//	/**
//	 * @deprecated
//	 * @param val
//	 * @return
//	 */
//	protected Integer convertToInteger(Object val) {
//		if (val == null || val.equals("")) return null;
//		if(val instanceof java.lang.Integer) {
//			return (Integer) val;
//		} else if (val instanceof java.lang.String) {
//			return Integer.parseInt((String)val);
//		} else {
//			return Integer.valueOf(val.toString());
//		}
//	}
//	
//	/**
//	 * @deprecated
//	 * 通过attrName获取该组件的属性值，如果获取不到attrName的组件值，则以
//	 * defaultValue返回.
//	 * @param attrName
//	 * @param defaultValue
//	 * @return val
//	 */
//	protected Object getAttributeByDefault(String attrName, Object defaultValue) {
//		Object o = this.getAttributes().get(attrName);
//		return o != null ? o : defaultValue;
//	}
//	
//	/**
//	 * @deprecated
//	 * @param fc
//	 * @param component sub component
//	 * @throws IOException
//	 */
//	protected void encodeBox(FacesContext fc, SubComponent component) throws IOException {
//		String src_tc = QFaces.getResLoader().makeImageSrc(Constant.QFACES_BOX_FRAME_TC);
//		String src_l = QFaces.getResLoader().makeImageSrc(Constant.QFACES_BOX_FRAME_L);
//		String src_r = QFaces.getResLoader().makeImageSrc(Constant.QFACES_BOX_FRAME_R);
//		String src_bc = QFaces.getResLoader().makeImageSrc(Constant.QFACES_BOX_FRAME_BC);
//		// 在某些瀏覽器下可能會在邊框的間隔部分出現空白，以下style解決這個問題
//		String styleFixSpaceBug = "margin:0;padding:0;font-size:0;border:0;";
//		
//		ResponseWriter rw = fc.getResponseWriter();
//		rw.startElement("table", this);
//		rw.writeAttribute("border", "0", null);
//		rw.writeAttribute("cellspacing", "0", null);
//		rw.writeAttribute("cellpadding", "0", null);
//		rw.startElement("tr", this);
//			rw.startElement("td", this);
//			rw.writeAttribute("style", styleFixSpaceBug, null);
//			QFaces.getResLoader().loadImage(Constant.QFACES_BOX_FRAME_TL);
//			rw.endElement("td");
//			
//			rw.startElement("td", this);
//			rw.writeAttribute("style", styleFixSpaceBug + "background:url(" + src_tc + ") repeat-x", null);
//			rw.endElement("td");
//			
//			rw.startElement("td", this);
//			rw.writeAttribute("style", styleFixSpaceBug, null);
//			QFaces.getResLoader().loadImage(Constant.QFACES_BOX_FRAME_TR);
//			rw.endElement("td");
//		rw.endElement("tr");
//		rw.startElement("tr", this);
//			rw.startElement("td", this);
//			rw.writeAttribute("style", styleFixSpaceBug + "background:url(" + src_l + ") repeat-y", null);
//			rw.endElement("td");
//			
//			rw.startElement("td", this);
//			component.encode(fc);
//			rw.endElement("td");
//			
//			rw.startElement("td", this);
//			rw.writeAttribute("style", styleFixSpaceBug + "background:url(" + src_r + ") repeat-y", null);
//			rw.endElement("td");
//		rw.endElement("tr");
//		rw.startElement("tr", this);
//			rw.startElement("td", this);
//			rw.writeAttribute("style", styleFixSpaceBug, null);
//			QFaces.getResLoader().loadImage(Constant.QFACES_BOX_FRAME_BL);
//			rw.endElement("td");
//			
//			rw.startElement("td", this);
//			rw.writeAttribute("style", styleFixSpaceBug + "background:url(" + src_bc + ") repeat-x", null);
//			rw.endElement("td");
//			
//			rw.startElement("td", this);
//			rw.writeAttribute("style", styleFixSpaceBug, null);
//			QFaces.getResLoader().loadImage(Constant.QFACES_BOX_FRAME_BR);
//			rw.endElement("td");
//		rw.endElement("tr");
//		
//		rw.endElement("table");
//	}
//	
//	/**
//	 * @deprecated
//	 * @author huliqing
//	 *
//	 */
//	protected interface SubComponent {
//		void encode(FacesContext fc) throws IOException;
//	}
//}
